Skip to content

[9.4] Fix @elastic/eui/icon-accessibility-rules lint violations across @elastic/kibana-security files (#269654)#272024

Merged
kibanamachine merged 1 commit into
elastic:9.4from
kibanamachine:backport/9.4/pr-269654
May 30, 2026
Merged

[9.4] Fix @elastic/eui/icon-accessibility-rules lint violations across @elastic/kibana-security files (#269654)#272024
kibanamachine merged 1 commit into
elastic:9.4from
kibanamachine:backport/9.4/pr-269654

Conversation

@kibanamachine
Copy link
Copy Markdown
Contributor

Backport

This will backport the following commits from main to 9.4:

Questions ?

Please refer to the Backport tool documentation

…lastic/kibana-security files (elastic#269654)

Resolves 36 ESLint `@elastic/eui/icon-accessibility-rules` violations
across 25 files owned by @elastic/kibana-security.

## Changes

- **Decorative icons** (adjacent to visible text): added
`aria-hidden={true}`
- Logo icons, category icons, chevrons, empty spacers, inputOutput
icons, document/sort icons
- **Meaningful icons** (convey standalone information): added
`aria-label` with i18n
  - Warning icon in `role_table_display.tsx` → "Deprecated"
  - MinusCircle icon in `privilege_display.tsx` → "None"

Example:

```tsx
// Decorative — icon next to visible text
<EuiIcon type="logoElastic" size="xxl" aria-hidden={true} />

// Meaningful — icon conveys status independently
<EuiIcon
  type="warning"
  color="warning"
  size="s"
  aria-label={i18n.translate(
    'xpack.security.management.roles.roleTableDisplay.deprecatedIconAriaLabel',
    { defaultMessage: 'Deprecated' }
  )}
/>
```

> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> - `ci-stats.kibana.dev`
> - Triggering command:
`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node
/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node
scripts/yarn_install_scripts.js run ldd 0.8.2` (dns block)
> - Triggering command:
`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node
/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node scripts/kbn
bootstrap` (dns block)
> - `clients3.google.com`
> - Triggering command:
`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon
/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon
run :build-webpack ldd 0.8.2 &gt; b[i]) exit(0)` (dns block)
> - `detectportal.firefox.com`
> - Triggering command:
`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon
/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon
run :build-webpack ldd 0.8.2 &gt; b[i]) exit(0)` (dns block)
> - `google.com`
> - Triggering command:
`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon
/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon
run :build-webpack ldd 0.8.2 &gt; b[i]) exit(0)` (dns block)
> - `googlechromelabs.github.io`
> - Triggering command:
`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node
/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node install.js
yp-bin/ldd ldd b/li�� nibrowser-gtk/sys/lib/libbrotlienc.so.1.0.7` (dns
block)
> - `iojs.org`
> - Triggering command: `/usr/bin/curl curl -q --fail --compressed -L -s
REDACTED -o -` (dns block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/elastic/kibana/settings/copilot/coding_agent)
(admins only)
>
> </details>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: alexwizp <20072247+alexwizp@users.noreply.github.com>
Co-authored-by: Alexey Antonov <alexwizp@gmail.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit a067907)
@kibanamachine
Copy link
Copy Markdown
Contributor Author

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] Scout Lane #9 - stateful-classic / default / local-stateful-classic - Observability Landing Page (discover.isEsqlDefault enabled) - redirects to onboarding when no logs data exists

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
security 548.7KB 550.5KB +1.8KB
spaces 235.6KB 235.9KB +238.0B
total +2.0KB

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
interactiveSetup 33.1KB 33.1KB +51.0B
security 71.7KB 71.7KB +17.0B
total +68.0B

cc @alexwizp

@kibanamachine kibanamachine merged commit 98c6627 into elastic:9.4 May 30, 2026
35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport This PR is a backport of another PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants